package com.vhr.service;

import com.vhr.VO.CheckCountVO;
import com.vhr.entities.*;

import java.util.List;

public interface ICheckService {
    //查询所有考勤信息
    List<Check>  selectAllCheck();
    List<CheckExtra>  selectAllCheckWithName();

    //查询所有加班信息
    List<Overtime> selectAllOvertime();

    //查询所有请假信息
    List<Leave>  selectAllLeave();

    //管理员条件查询
    List<CheckExtra> selectCheckByCondition(Integer dept, String empName, Integer status, String yearDate, String monthDate);

    //管理员按日期查询
    List<CheckExtra> selectCheckByDate(String yearDate, String monthDate);

    //员工查询个人考勤信息
    List<Check> selectPersonCheck(Employee employee);

    List<CheckExtra> selectPersonCheckWithName(Integer empId);

    //员工条件查询个人考勤信息
    List<CheckExtra> selectPersonCheckByStatus(Integer empId, Integer status);

    //查询个人加班信息
    List<CheckExtra> selectPersonOvertime(Integer emp);

    //查询个人请假信息
    List<Leave>  selectPersonLeave(Employee emp);

    //插入请假考勤信息
    int insertCheck(Check check);

    //统计出勤信息条数记录
    int selectCheckCount();

    //修改出勤情况
    int updateCheck(Check check);

    //统计出勤信息
    List<CheckCountVO> countByStatus(String date);

    //计算加班工资:根据考勤表
    List<Check> countOverTimeByCheck(Integer empId ,String yearMonth,Integer status);
}
